/**
 * @ClassName HanoiTest
 * @Description 递归求解汉诺塔问题
 * @Author 李明忠
 * @Date 2025/5/17 23:12
 * @Version 1.0
 */
public class HanoiTest {
    /**
     * 汉诺塔
     * a b c三根柱子
     * @param n, a, b, c
     */
    public static void hanoi(int n, char a, char b, char c) {
        //如果只有一个盘子就直接将盘子从a移动到c
        if (n == 1) {
            System.out.println(a + "->" + c);
            return;
        }
        //将n-1个盘子从a借助c移动到b
        hanoi(n - 1, a, c, b);

        //将第n个盘子从a移动到c
        System.out.println(a + "->" + c);

        //最后将n-1个盘子从b借助a移动到c
        hanoi(n - 1, b, a, c);
    }
    public static void main(String[] args) {
        hanoi(3,'a','b','c');
    }
}
